package top.hmtools.daos;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import top.hmtools.beans.MapperXmlSqlPartTempletBean;

/**
 * 操作mapper xml 片断信息表的dao
 * @author HyboJ
 *
 */
public interface MapperXmlSqlPartTempletDao extends BaseDao<MapperXmlSqlPartTempletBean>{

    /**
     * 
    * 方法说明：                    getSqlPartTempletsByDataType
    * 输入参数说明：           @param typeCode
    * 输入参数说明：           @return
    * 输出参数说明：           List<MapperXmlSqlPartTempletBean>
    *
    *
     */
    List<MapperXmlSqlPartTempletBean> getSqlPartTempletsByDataType(@Param("dbType")int typeCode);

    /**
     * 根据id，分组名称，因子名称获取总条数，用于检查是否唯一。
     * <br>分组名称，因子名称均要求唯一
     * <br>当id不为空时，则是用于修改记录场景时检查，应将自身排除。
    * 输入参数说明：           @param id
    * 输入参数说明：           @param name
    * 输入参数说明：           @param factorName
    * 输入参数说明：           @return
    * 输出参数说明：           int
    *
    *
     */
    int getCount4CheckUnique(@Param("id")String id,@Param("dbType")int dbType,@Param("name")String name,@Param("factorName")String factorName);

    /**
     * 根据数据库类别，SQL片段组别获取对应的SQL片段数据集合
     * @param typeCode
     * @param groupId
     * @return
     */
	List<MapperXmlSqlPartTempletBean> getSqlPartTempletsByCondition(@Param("dbType")int dbType, @Param("groupId")String groupId);

	/**
	 * 根据条件获取SQL片断
	 * @param db_type
	 * @param groupFactors
	 * @param factors
	 * @return
	 */
	List<MapperXmlSqlPartTempletBean> getSqlPartTempletsByCondition2(@Param("dbType")int db_type,@Param("groupFactors") List<String> groupFactors,
			@Param("factors")List<String> factors);

}
